package cn.rkylin.oms.salespromotion.rules.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import cn.rkylin.oms.common.base.BaseEntity;

/**
 * 规则实体，对应oms_sales_promotion_rule表
 * 
 * @author zhanghao
 * @version 1.0
 * @created 17-8月-2017 10:34:40
 */
public class SalesPromotionRule extends BaseEntity{
    private static final long serialVersionUID = 6310559905149568772L;
    
    public static String RULE_STATE_ENABLE = "y";
    public static String RULE_STATE_DISABLE = "n";
    
        /**
         * 规则编号
         */
        private String ruleId;

        /**
         * 规则名称
         */
        private String ruleName;

        /**
         * 规则描述
         */
        private String ruleDescription;

        /**
         * 日期类型
         */
        private String countingDateType;

        /**
         * 日期开始
         */
        @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone = "GMT+8")
        private Date countingDateStart;

        /**
         * 日期结束
         */
        @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone = "GMT+8")
        private Date countingDateEnd;

        /**
         * 是否启用
         */
        private String isEnable;

        /**
         * 是否按限制商品计算
         */
        private String isConstrainGoodsEnable;

        /**
         * 是否设置每天时间
         */
        private String isEachdaySetEnable;

        /**
         * 是否支持重复ID参与
         */
        private String isDuplicatedIdEnable;

        /**
         * 是否限制订单总金额
         */
        private String isOrderAmountConstrainEnable;

        /**
         * 是否限制ID范围
         */
        private String isIdRangeConstrainEnable;

        /**
         * 每天开始时间
         */
        private String eachDayTimeStart;

        /**
         * 每天结束时间
         */
        private String eachDayTimeEnd;

        /**
         * 订单限制金额
         */
        private BigDecimal orderAmountConstrain;

        /**
         * 限制ID范围
         */
        private String idRange;

        /**
         * 创建人
         */
        private String creator;

        /**
         * 创建时间
         */
        @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone = "GMT+8")
        private Date createTime;

        /**
         * 上次更新时间
         */
        @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone = "GMT+8")
        private Date updateTime;

        /**
         * 所属项目ID
         */
        private String projectId;

        /**
         * 企业ID
         */
        private String entId;

        /**
         * 删除标记
         */
        private String deleted;

        /**
         * 赠品计算规则
         */
        private String presentCaculateRule;

        /**
         * 规则编号
         * @return rule_id 规则编号
         */
        public String getRuleId() {
            return ruleId;
        }

        /**
         * 规则编号
         * @param ruleId 规则编号
         */
        public void setRuleId(String ruleId) {
            this.ruleId = ruleId;
        }

        /**
         * 规则名称
         * @return rule_name 规则名称
         */
        public String getRuleName() {
            return ruleName;
        }

        /**
         * 规则名称
         * @param ruleName 规则名称
         */
        public void setRuleName(String ruleName) {
            this.ruleName = ruleName;
        }

        /**
         * 规则描述
         * @return rule_description 规则描述
         */
        public String getRuleDescription() {
            return ruleDescription;
        }

        /**
         * 规则描述
         * @param ruleDescription 规则描述
         */
        public void setRuleDescription(String ruleDescription) {
            this.ruleDescription = ruleDescription;
        }

        /**
         * 日期类型
         * @return counting_date_type 日期类型
         */
        public String getCountingDateType() {
            return countingDateType;
        }

        /**
         * 日期类型
         * @param countingDateType 日期类型
         */
        public void setCountingDateType(String countingDateType) {
            this.countingDateType = countingDateType;
        }

        /**
         * 日期开始
         * @return counting_date_start 日期开始
         */
        public Date getCountingDateStart() {
            return countingDateStart;
        }

        /**
         * 日期开始
         * @param countingDateStart 日期开始
         */
        public void setCountingDateStart(Date countingDateStart) {
            this.countingDateStart = countingDateStart;
        }

        /**
         * 日期结束
         * @return counting_date_end 日期结束
         */
        public Date getCountingDateEnd() {
            return countingDateEnd;
        }

        /**
         * 日期结束
         * @param countingDateEnd 日期结束
         */
        public void setCountingDateEnd(Date countingDateEnd) {
            this.countingDateEnd = countingDateEnd;
        }

        /**
         * 是否启用
         * @return is_enable 是否启用
         */
        public String getIsEnable() {
            return isEnable;
        }

        /**
         * 是否启用
         * @param isEnable 是否启用
         */
        public void setIsEnable(String isEnable) {
            this.isEnable = isEnable;
        }

        /**
         * 是否按限制商品计算
         * @return is_constrain_goods_enable 是否按限制商品计算
         */
        public String getIsConstrainGoodsEnable() {
            return isConstrainGoodsEnable;
        }

        /**
         * 是否按限制商品计算
         * @param isConstrainGoodsEnable 是否按限制商品计算
         */
        public void setIsConstrainGoodsEnable(String isConstrainGoodsEnable) {
            this.isConstrainGoodsEnable = isConstrainGoodsEnable;
        }

        /**
         * 是否设置每天时间
         * @return is_eachday_set_enable 是否设置每天时间
         */
        public String getIsEachdaySetEnable() {
            return isEachdaySetEnable;
        }

        /**
         * 是否设置每天时间
         * @param isEachdaySetEnable 是否设置每天时间
         */
        public void setIsEachdaySetEnable(String isEachdaySetEnable) {
            this.isEachdaySetEnable = isEachdaySetEnable;
        }

        /**
         * 是否支持重复ID参与
         * @return is_duplicated_id_enable 是否支持重复ID参与
         */
        public String getIsDuplicatedIdEnable() {
            return isDuplicatedIdEnable;
        }

        /**
         * 是否支持重复ID参与
         * @param isDuplicatedIdEnable 是否支持重复ID参与
         */
        public void setIsDuplicatedIdEnable(String isDuplicatedIdEnable) {
            this.isDuplicatedIdEnable = isDuplicatedIdEnable;
        }

        /**
         * 是否限制订单总金额
         * @return is_order_amount_constrain_enable 是否限制订单总金额
         */
        public String getIsOrderAmountConstrainEnable() {
            return isOrderAmountConstrainEnable;
        }

        /**
         * 是否限制订单总金额
         * @param isOrderAmountConstrainEnable 是否限制订单总金额
         */
        public void setIsOrderAmountConstrainEnable(String isOrderAmountConstrainEnable) {
            this.isOrderAmountConstrainEnable = isOrderAmountConstrainEnable;
        }

        /**
         * 是否限制ID范围
         * @return is_id_range_constrain_enable 是否限制ID范围
         */
        public String getIsIdRangeConstrainEnable() {
            return isIdRangeConstrainEnable;
        }

        /**
         * 是否限制ID范围
         * @param isIdRangeConstrainEnable 是否限制ID范围
         */
        public void setIsIdRangeConstrainEnable(String isIdRangeConstrainEnable) {
            this.isIdRangeConstrainEnable = isIdRangeConstrainEnable;
        }

        /**
         * 每天开始时间
         * @return each_day_time_start 每天开始时间
         */
        public String getEachDayTimeStart() {
            return eachDayTimeStart;
        }

        /**
         * 每天开始时间
         * @param eachDayTimeStart 每天开始时间
         */
        public void setEachDayTimeStart(String eachDayTimeStart) {
            this.eachDayTimeStart = eachDayTimeStart;
        }

        /**
         * 每天结束时间
         * @return each_day_time_end 每天结束时间
         */
        public String getEachDayTimeEnd() {
            return eachDayTimeEnd;
        }

        /**
         * 每天结束时间
         * @param eachDayTimeEnd 每天结束时间
         */
        public void setEachDayTimeEnd(String eachDayTimeEnd) {
            this.eachDayTimeEnd = eachDayTimeEnd;
        }

        /**
         * 订单限制金额
         * @return order_amount_constrain 订单限制金额
         */
        public BigDecimal getOrderAmountConstrain() {
            return orderAmountConstrain;
        }

        /**
         * 订单限制金额
         * @param orderAmountConstrain 订单限制金额
         */
        public void setOrderAmountConstrain(BigDecimal orderAmountConstrain) {
            this.orderAmountConstrain = orderAmountConstrain;
        }

        /**
         * 限制ID范围
         * @return id_range 限制ID范围
         */
        public String getIdRange() {
            return idRange;
        }

        /**
         * 限制ID范围
         * @param idRange 限制ID范围
         */
        public void setIdRange(String idRange) {
            this.idRange = idRange;
        }

        /**
         * 创建人
         * @return creator 创建人
         */
        public String getCreator() {
            return creator;
        }

        /**
         * 创建人
         * @param creator 创建人
         */
        public void setCreator(String creator) {
            this.creator = creator;
        }

        /**
         * 创建时间
         * @return create_time 创建时间
         */
        public Date getCreateTime() {
            return createTime;
        }

        /**
         * 创建时间
         * @param createTime 创建时间
         */
        public void setCreateTime(Date createTime) {
            this.createTime = createTime;
        }

        /**
         * 上次更新时间
         * @return update_time 上次更新时间
         */
        public Date getUpdateTime() {
            return updateTime;
        }

        /**
         * 上次更新时间
         * @param updateTime 上次更新时间
         */
        public void setUpdateTime(Date updateTime) {
            this.updateTime = updateTime;
        }

        /**
         * 所属项目ID
         * @return project_id 所属项目ID
         */
        public String getProjectId() {
            return projectId;
        }

        /**
         * 所属项目ID
         * @param projectId 所属项目ID
         */
        public void setProjectId(String projectId) {
            this.projectId = projectId;
        }

        /**
         * 企业ID
         * @return ent_id 企业ID
         */
        public String getEntId() {
            return entId;
        }

        /**
         * 企业ID
         * @param entId 企业ID
         */
        public void setEntId(String entId) {
            this.entId = entId;
        }

        /**
         * 删除标记
         * @return deleted 删除标记
         */
        public String getDeleted() {
            return deleted;
        }

        /**
         * 删除标记
         * @param deleted 删除标记
         */
        public void setDeleted(String deleted) {
            this.deleted = deleted;
        }

        /**
         * 赠品计算规则
         * @return present_caculate_rule 赠品计算规则
         */
        public String getPresentCaculateRule() {
            return presentCaculateRule;
        }

        /**
         * 赠品计算规则
         * @param presentCaculateRule 赠品计算规则
         */
        public void setPresentCaculateRule(String presentCaculateRule) {
            this.presentCaculateRule = presentCaculateRule;
        }
    
}
